# 静态方法
class Person(object):
    type = "中国人"
    def __init__(self, name):
        self.name = name
    @staticmethod  # 静态方法装饰器
    def eat(self):
        print("调用静态方法,%s" %self.name)
    @classmethod  # 类方法装饰器
    def run(self):
        # 类方法只能访问类属性,无法访问实例属性
        print("调用类方法,类属性:%s" %self.type)
    @property  # 属性方法装饰器
    def do(self):
        self.eat(self)
        self.run()
person = Person("侯征")
person.do  # 属性方法只能直接调用,不需要()
person.run()
# 调用静态方法时,不会把自身当做实例自动传递,需要手动添加实例
person.eat(person)

